/*************************************
* @update: 2023-xx-xx   xxxx_谁开发  [创建文件]
*
* @description: 改变属性,改变数据之后,更新组件
*
* 说明
1. changeAttrConfig()   //改变属性配置项时,平台会调用此方法
2. changeDataConfig()   //改变数据配置项时,平台会调用此方法
3. repeatDo()           //平台会定时轮询此函数
4. rerender()           //改变组件容器的宽高,平台会调用此方法
5. resizeStop() 	    //容器宽高改变完之后需要执行的操作
6. changeFontRate() 	//改变组件字体倍数
7. changeThemeColor() 	//改变颜色主题
8. hideLazyComp() 	    //临时隐藏页面的共享组件,这里需要取消定时器,轮询接口等
9. changePage() 	    //切换页面,公享组件需要重新执行的相关操作
****************************************/


// import attrConfig from './attrConfig' //默认值属性配置项
// import dataConfig from './dataConfig' //默认数据配置项



export default {
    props: {
        /* attrConfig: {
            type: Array,
            default: () => attrConfig()
        }, */

        /* dataConfig: {
            type: Object,
            default: () => dataConfig()
        } */
    },
    data: () => ({}),
    created () { },
    mounted () {
        //this.initAttr()
    },
    methods: {

        initAttr () {
            this.changeAttrConfig()
        },


        //1.改变属性配置项
        changeAttrConfig (newAttr, oldAttr) {
            // 注:  newAttr == this.attrConfig
            // newAttr = newAttr || this.attrConfig
            // const elStyle = T.joinAttr(this.attrConfig[0])
            // this.$el.style.cssText += elStyle
        },



        //2.改变数据配置项
        changeDataConfig (newData, oldData) {
            // 注:  newData == this.dataConfig
            // newData = newData || this.dataConfig
            this.getData && this.getData()
        },



        //3.定时刷新
        repeatDo () {
            this.getData && this.getData()
        },



        //4.改变组件容器的宽高
        rerender () {
            // this.chart && this.chart.resize && this.chart.resize()
        },



        //5.容器宽高改变完之后需要执行的操作
        resizeStop () {
            this.chart && this.chart.resize && this.chart.resize()
        },



        //6.改变组件字体倍数
        changeFontRate () {
            this.drawChart && this.drawChart()
        },



        //7.改变颜色主题
        changeThemeColor () {
            this.drawChart && this.drawChart()
        },



        //8.临时隐藏页面的共享组件,这里需要取消定时器,轮询接口等
        hideLazyComp () {
            //关闭接口轮询定时器 [此句代码不要删]
            clearTimeout(this.commonRepeatDoTimeId)
        },



        //9.切换页面,公享组件需要重新执行的相关操作
        async changePage (pageObj) {
            this.commonRepeatDo() //重启轮询接口 [此句代码不要删]

            /* pageObj的数据结构
            {
                name : "xxxx页面名称"
                pageId: "2314492603e811ed96f9b8ca3aa66f07"
            } */

            // this.changeAttrConfig()
            // this.rerender()
            // this.changeDataConfig()
        }

    },

    beforeUnmount () {
        this.chart && this.chart.dispose && this.chart.dispose()
    }
}